package com.projetosi.web.server.sistema.objetos;

import com.projetosi.web.server.sistema.interfaces.Atividade;

public class AtividadeDeCadastrarItem implements Atividade {
	
	private String nomeDoUsuario, nomeDoItem, template, idAtividade;
	
	public AtividadeDeCadastrarItem(String nomeDoUsuario, String nomeDoItem) throws Exception {
		setNomeDoUsuario(nomeDoUsuario);
		setNomeDoItem(nomeDoItem);
		setTemplate(criarTemplateDaAtividade());
	}
		
	
	public String getNomeDoUsuario() {
		return nomeDoUsuario;
	}
	public String getNomeDoItem() {
		return nomeDoItem;
	}
	@Override
	public String getTemplate() {
		return template;
	}
	
	public void setNomeDoItem(String nomeDoItem) throws Exception {
		if(nomeDoItem== null || nomeDoItem.trim().isEmpty())
			throw new Exception("Nome do item nao pode ser null ou vazio");
		this.nomeDoItem = nomeDoItem;
	}
	
	public void setNomeDoUsuario(String nomeDoUsuario) throws Exception {
		if(nomeDoUsuario== null || nomeDoUsuario.trim().isEmpty())
			throw new Exception("Nome do usuario nao pode ser null ou vazio");
		this.nomeDoUsuario = nomeDoUsuario;
	}
	
	public void setTemplate(String template) throws Exception{
		if(template== null || template.trim().isEmpty())
			throw new Exception("Template nao pode ser null ou vazio");
		this.template = template;
	}
	
	@Override
	public String criarTemplateDaAtividade() {
		return getNomeDoUsuario() + " cadastrou " + getNomeDoItem();	
	}


	@Override
	public String getIdAtividade() {
		return idAtividade;
	}


	@Override
	public void setIdAtividade(String id) {
		this.idAtividade = id;
	}
	
	@Override
	public boolean equals(Object obj) {
		if(!(obj instanceof AtividadeDeCadastrarItem)){
			return false;
		}
		AtividadeDeCadastrarItem outro = (AtividadeDeCadastrarItem) obj;
		return this.getNomeDoItem().equals(outro.getNomeDoItem()) &&
			   this.getNomeDoUsuario().equals(outro.getNomeDoUsuario());
	}

}
